﻿using System;
using System.Reflection;

namespace NCS.IConnect.Core.WebApi.Description
{
    /// <summary>
    /// A provider for type and member documentation.
    /// </summary>
    public interface IModelDocumentationProvider
    {
        /// <summary>
        /// The documentation for a type member.
        /// </summary>
        /// <param name="member">The <see cref="MemberInfo"/>.</param>
        /// <returns>The documentation for a type member.</returns>
        string GetDocumentation(MemberInfo member);

        /// <summary>
        /// Gets the documentation for a type.
        /// </summary>
        /// <param name="type">The <see cref="Type"/>.</param>
        /// <returns>The documentation for a type.</returns>
        string GetDocumentation(Type type);

        /// <summary>
        /// Gets the remark.
        /// </summary>
        /// <param name="member">The member.</param>
        /// <returns>System.String.</returns>
        string GetRemark(MemberInfo member);
    }
}